home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / programming / mui / mcc_popph / mcc_popph_src / bumprev.rexx < prev    next >
OS/2 REXX Batch file  |  1999-11-30  |  3KB  |  109 lines

  1. /*
  2.  *      $VER: BumpRev.rexx 1.1 (26.04.98) © Sylvain Rougier
  3.  *
  4.  *
  5.  *      Example:
  6.  *      1>      rx bumprev.rexx Name prog Version 1 Revision 0 Copyright "© by Sylvain Rougier" IncRev Verbose
  7.  *
  8.  */
  9.  
  10.  
  11. PARSE ARG ArgLine
  12.  
  13. call addlib("RexxDosSupport.library",0,-30,2)
  14.  
  15. Template = "Name/A,Version,Revision,File/K,Copyright/K,IncRev/K/S,Verbose/K/S,Asm/K/S"
  16. IF ~ReadArgs(ArgLine, Template, "Args.") THEN DO
  17.     Echo "BumpRev: " Fault(RC)
  18.     Echo "Usage: "Template
  19.     EXIT
  20. END
  21.  
  22. IF Args.File = 'ARGS.FILE' THEN
  23.     FileName = Args.Name"_rev.h"
  24. ELSE
  25.     FileName = Args.File
  26.  
  27. IF Args.IncRev THEN DO
  28.     IF OPEN(FH, FileName, 'R') THEN DO
  29.         s = ReadLn(FH)  /* VERSION */
  30.         OldVersion = WORD(s, 3)
  31.         IF OldVersion ~= Args.Version THEN
  32.             Args.Revision = 0
  33.         ELSE
  34.             DO
  35.             s = ReadLn(FH)  /* REVISION */
  36.             Args.Revision = WORD(s, 3) + 1
  37.             END
  38.         CLOSE(FH)
  39.     END
  40.     ELSE
  41.         Args.Revision = 0;
  42. END
  43.  
  44. VersionRevision = Args.Version'.'Args.Revision
  45. DateVer = SUBSTR(DATE(SORTED), 7, 2)'.'SUBSTR(DATE(SORTED), 5, 2)'.'SUBSTR(DATE(SORTED), 3, 2)
  46. VersTag = '$VER: 'Args.Name' 'VersionRevision' ('DateVer')"'
  47.  
  48. /*
  49. ExpireDay     = SUBSTR(DATE(SORTED), 7, 2)
  50. ExpireMonth   = RIGHT(SUBSTR(DATE(SORTED), 5, 2)+1, 2, "0")
  51. ExpireYear    = SUBSTR(DATE(SORTED), 1, 4)
  52. ExpireDateStr = ExpireDay'.'ExpireMonth'.'ExpireYear'"'
  53. */
  54.  
  55.  
  56. say '.revinfo: 'Args.Version'.'Args.Revision
  57. IF OPEN(FH, '.revinfo', 'W') THEN DO
  58.     Writeln(FH, Args.Version'.'Args.Revision)
  59.     CLOSE(FH)
  60. END
  61.  
  62.  
  63. IF OPEN(FH, FileName, 'W') THEN DO
  64.     WriteLn(FH, '#define VERSION 'Args.Version)
  65.     WriteLn(FH, '#define REVISION 'Args.Revision)
  66.     WriteLn(FH, '#define VERSIONREVISION "'VersionRevision'"')      /* asked by Pierre Carrette */
  67.     WriteLn(FH, '#define DATE "'DateVer'"')
  68.     WriteLn(FH, '#define VERS "'Args.Name' 'VersionRevision'"')
  69.     WriteLn(FH, '#define VSTRING "'Args.Name' 'VersionRevision' ('DateVer')\r\n"')
  70.     WriteLn(FH, '#define VERSTAG "'VersTag)
  71.  
  72. /*
  73.     WriteLn(FH, '#define EXPIREDATE "'ExpireDateStr)
  74.     WriteLn(FH, '#define EXPIREDAY 'ExpireDay)
  75.     WriteLn(FH, '#define EXPIREDMONTH 'ExpireMonth)
  76.     WriteLn(FH, '#define EXPIREDYEAR 'ExpireYear)
  77. */
  78.  
  79.     CLOSE(FH)
  80. END
  81. ELSE
  82.     EXIT
  83.  
  84. IF Args.Asm THEN DO
  85.     IF OPEN(FH, Args.Name"_rev.i", 'W') THEN DO
  86.         WriteLn(FH, "VERSION EQU "Args.Version)
  87.         WriteLn(FH, "REVISION EQU "Args.Revision)
  88.         WriteLn(FH, "DATE       MACRO")
  89.         WriteLn(FH, "           dc.b  '"DateVer"'")
  90.         WriteLn(FH, "   ENDM")
  91.         WriteLn(FH, "VERS       MACRO")
  92.         WriteLn(FH, "           dc.b  '"Args.Name" "VersionRevision"'")
  93.         WriteLn(FH, "   ENDM")
  94.         WriteLn(FH, "VSTRING    MACRO")
  95.         WriteLn(FH, "           dc.b  '"Args.Name" "VersionRevision" ("DateVer")',13,10,0")
  96.         WriteLn(FH, "   ENDM")
  97.         WriteLn(FH, "VERSTAG    MACRO")
  98.         WriteLn(FH, "           dc.b  '$VER: "Args.Name" "VersionRevision" ("DateVer") "TIME(NORMAL)" "Args.Copyright"',0") 
  99.         WriteLn(FH, "   ENDM")
  100.         CLOSE(FH)
  101.     END
  102.     ELSE
  103.         EXIT
  104. END
  105.  
  106. IF Args.Verbose THEN DO
  107.     Echo VersTag
  108. END
  109.